@echo off
chcp 65001 >nul
echo ================================
echo kmsg-ui 部署脚本
echo ================================
echo.

REM 检查Docker是否安装
docker --version >nul 2>&1
if %errorlevel% neq 0 (
    echo [错误] Docker未安装或未启动，请先安装Docker Desktop
    pause
    exit /b 1
)

REM 检查Docker Compose是否可用
docker-compose --version >nul 2>&1
if %errorlevel% neq 0 (
    echo [错误] Docker Compose不可用，请检查Docker安装
    pause
    exit /b 1
)

echo [信息] Docker环境检查通过
echo.

REM 检查.env文件是否存在
if not exist ".env" (
    echo [警告] .env文件不存在，正在从模板创建...
    if exist ".env.example" (
        copy ".env.example" ".env" >nul
        echo [信息] 已创建.env文件，请编辑配置后重新运行此脚本
        echo [信息] 需要配置的主要项目：
        echo   - REDIS_HOST: Redis服务器地址
        echo   - REDIS_PASSWORD: Redis密码
        echo   - KAFKA_BOOTSTRAP_SERVERS: Kafka服务器地址
        echo   - KAFKA_SASL_USERNAME: Kafka用户名（如需要）
        echo   - KAFKA_SASL_PASSWORD: Kafka密码（如需要）
        echo.
        echo [注意] 此配置文件会覆盖backend/.env中的相应配置
        echo.
        pause
        exit /b 0
    ) else (
        echo [错误] .env.example文件不存在
        pause
        exit /b 1
    )
)

REM 检查backend/.env文件是否存在
if not exist "backend\.env" (
    echo [错误] backend\.env文件不存在，请确保后端基础配置文件存在
    pause
    exit /b 1
)

echo [信息] 环境配置文件检查通过
echo.

REM 日志输出到控制台，无需创建日志目录
echo [信息] 日志将输出到控制台

echo [信息] 开始构建和启动服务...
echo.

REM 停止现有服务
echo [步骤1] 停止现有服务...
docker-compose down

REM 构建并启动服务
echo [步骤2] 构建并启动服务...
echo [信息] 开始构建，这可能需要几分钟...
docker-compose up -d --build

if %errorlevel% neq 0 (
    echo [错误] 服务启动失败，请检查日志
    echo 查看构建日志: docker-compose logs
    echo 查看实时日志: docker-compose logs -f
    pause
    exit /b 1
)

echo.
echo [信息] 等待服务启动...
timeout /t 10 /nobreak >nul

REM 检查服务状态
echo [步骤3] 检查服务状态...
docker-compose ps

echo.
echo ================================
echo 部署完成！
echo ================================
echo.
echo 访问地址：
echo   前端界面: http://localhost:13000
echo   后端API:  http://localhost:18000
echo   API文档:  http://localhost:18000/docs
echo.
echo 管理命令：
echo   查看日志: docker-compose logs -f
echo   停止服务: docker-compose down
echo   重启服务: docker-compose restart
echo.
echo 健康检查：
echo   前端: http://localhost:13000/health
echo   后端: http://localhost:18000/health
echo.

pause
